home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 476-500 / disk_484 / ezasm / make1.s < prev    next >
Text File  |  1992-05-06  |  2KB  |  152 lines

  1.  
  2. *    Make for EZAsm, A68k, Blink
  3. *    Test for success by Lock() / Examine() on produced file
  4.  
  5. *    ( Minutes combined with Tics to prevent "wrap around" problems )
  6.  
  7.  
  8.  
  9. LONG    CLIName CLILen _DosBase OutHandle
  10. LONG    Buf Tbuf
  11. LONG    FIB Cdays Flock Comb
  12.  
  13.  
  14.  
  15.     CLIName = a0
  16.     CLILen = d0    ;save 'um
  17.  
  18.     _DosBase = OpenLibrary( "dos.library" 0 )
  19.     beq    Quit
  20.  
  21.     FIB = AllocMem( 300 $10001 )
  22.     beq    Quit
  23.  
  24.     Tbuf = AllocMem( 12 $10001 )    ;DateStamp() buffer
  25.     beq    Quit
  26.  
  27.     Buf = AllocMem( 100 $10001 )    ;Execute() buffer
  28.     beq    Quit
  29.  
  30.     PrintInit( )
  31.     beq    Quit
  32.  
  33.     OutHandle = Output( )
  34.  
  35. *   Null name arg
  36.  
  37.     a0 = CLIName
  38.     CLILen --    ;adjust
  39.     a0 += CLILen
  40.     (a0) = 0 b    ;$0A -> $00
  41.  
  42. *   Get current time
  43.  
  44.     a0 = DateStamp( Tbuf )
  45.  
  46.     Cdays = (a0)    ;save Days
  47.  
  48.     d0 = 4(a0)    ;D0 = Minutes
  49.     swap    d0    ;Minutes to upper 2 bytes
  50.     d0 |= 8(a0)    ;combine Minutes with Tics
  51.  
  52.     Comb = d0    ;save for compare
  53.  
  54.     Print( "--------------------\n" * )
  55.  
  56.     strcpy( Buf "ezasm " )
  57.     strcat( Buf CLIName )
  58.     strcat( Buf ".s\n" )
  59.  
  60.     Execute( Buf 0 OutHandle )    ; "ezasm [file].s\n"
  61.  
  62.     Print( "--------------------\n" * )
  63.  
  64.     strcpy( Buf CLIName )    ;get name to Lock() 
  65.     strcat( Buf ".asm" )
  66.  
  67.     bsr    Check
  68.  
  69.     strcpy( Buf "a68k " )
  70.     strcat( Buf CLIName )
  71.     strcat( Buf ".asm\n" )
  72.  
  73.     Execute( Buf 0 OutHandle )    ; "a68k [file].asm\n"
  74.  
  75.     Print( "--------------------\n" * )
  76.  
  77.     strcpy( Buf CLIName )    ;get name to Lock() 
  78.     strcat( Buf ".o" )
  79.  
  80.     bsr Check
  81.  
  82.     strcpy( Buf "blink FROM " )
  83.     strcat( Buf CLIName )
  84.     strcat( Buf ".o LIBRARY ez.lib TO " )
  85.     strcat( Buf CLIName )
  86.     strcat( Buf "\n" );
  87.  
  88.  
  89. *  Blink FROM [file].o LIBRARY ez.lib TO [file]
  90.  
  91.     Execute( Buf 0 OutHandle )
  92.  
  93. *  Don't worry if Blink fails..
  94.  
  95.     jmp    Quit
  96.  
  97.  
  98.  
  99.  
  100. Check
  101.  
  102.  
  103.     Flock = Lock( Buf -2 )      
  104.     beq    Quit
  105.  
  106. *   It's here, but is it more recent than Current values?
  107.  
  108.     Examine( Flock FIB )
  109.     beq    Quit
  110.  
  111.     a0 = FIB
  112.     d0 = 132(a0)        ;D0 = Days
  113.     d0 < Cdays  Quit
  114.  
  115.     d0 = 136(a0)        ;D0 = Minutes
  116.     swap    d0
  117.     d0 |= 140(a0)        ;combine with Tics
  118.  
  119.     d0 < Comb Quit
  120.  
  121.     UnLock( Flock )
  122.     Flock = 0
  123.  
  124.     rts
  125.  
  126.  
  127. Quit
  128.     PrintClose( )
  129.  
  130.     Flock != 0 {
  131.         UnLock( Flock )
  132.     }
  133.  
  134.     FIB != 0 {
  135.         FreeMem( FIB 300 )
  136.     }
  137.  
  138.     Tbuf != 0 {
  139.         FreeMem( Tbuf 12 )
  140.     }
  141.  
  142.     Buf != 0 {
  143.         FreeMem( Buf 100 )
  144.     }
  145.  
  146.     _DosBase != 0 {
  147.         CloseLibrary( _DosBase )
  148.     }
  149.  
  150.     END
  151.  
  152.